package net.ericaro.neojavagen.classes;

/**
 * <b>ConstructorDeclarator</b> ::= <{@link net .ericaro .neojavagen .classes .TypeParameters TypeParameters}>? <
 * {@link net .ericaro .neojavagen .classes .SimpleTypeName SimpleTypeName}> "(" <{@link net .ericaro .neojavagen .classes .FormalParameters FormalParameters}>?
 * ")"
 * 
 * @author eric@ericaro.net
 */
public class ConstructorDeclarator extends net.ericaro.neojavagen.JavaPartComposition {
	private net.ericaro.neojavagen.classes.FormalParameters formalParameters;

	private net.ericaro.neojavagen.classes.SimpleTypeName simpleTypeName;

	private net.ericaro.neojavagen.classes.TypeParameters typeParameters;

	public ConstructorDeclarator(net.ericaro.neojavagen.classes.SimpleTypeName simpleTypeName) {
		this.typeParameters = null;
		this.simpleTypeName = simpleTypeName;
		this.formalParameters = null;
	}

	public ConstructorDeclarator(net.ericaro.neojavagen.classes.TypeParameters typeParameters, net.ericaro.neojavagen.classes.SimpleTypeName simpleTypeName, net.ericaro.neojavagen.classes.FormalParameters formalParameters) {
		super();
		this.typeParameters = typeParameters;
		this.simpleTypeName = simpleTypeName;
		this.formalParameters = formalParameters;
	}

	public net.ericaro.neojavagen.classes.FormalParameters getFormalParameters() {
		return formalParameters;
	}

	public net.ericaro.neojavagen.classes.SimpleTypeName getSimpleTypeName() {
		return simpleTypeName;
	}

	public net.ericaro.neojavagen.classes.TypeParameters getTypeParameters() {
		return typeParameters;
	}

	public void setFormalParameters(net.ericaro.neojavagen.classes.FormalParameters formalParameters) {
		this.formalParameters = formalParameters;
	}

	public void setSimpleTypeName(net.ericaro.neojavagen.classes.SimpleTypeName simpleTypeName) {
		this.simpleTypeName = simpleTypeName;
	}

	public void setTypeParameters(net.ericaro.neojavagen.classes.TypeParameters typeParameters) {
		this.typeParameters = typeParameters;
	}

	@Override
	public java.lang.String toString() {
		return print(typeParameters, simpleTypeName, "(", formalParameters, ")");
	}
}
